package com.zhidisoft.system.service;

import java.util.List;

import com.zhidisoft.system.entity.Function;
import com.zhidisoft.system.vo.FunctionVO;
/**
 * 功能模块业务层接口
 * @author Lu Jianliang
 *
 */
public interface IFunctionService {
	
	/**
	 * 添加功能模块信息
	 * @param func
	 * @return
	 */
	String add(Function func);
	
	/**
	 * 更新功能模块信息
	 * @param func
	 * @return
	 */
	boolean update(Function func);
	
	/**
	 * 根据功能类型和角色id获取功能模块信息
	 * @param funcType -1表示菜单权限 0表示按钮权限
	 * @param roleIds 
	 * @return
	 */
	List<Function> findFunctions(Integer funcType, String... roleIds);
	
	/**
	 * 按照权限类型获取权限信息
	 * @param funcType
	 * @return
	 */
	List<Function> findFunctions(Integer funcType);

	/**
	 * 获取所有权限信息
	 * @return
	 */
	List<FunctionVO> findAll();

	/**
	 * 根据角色id获取所有的权限信息
	 * @param roleIds
	 * @return
	 */
	List<FunctionVO> findByRoleIds(String[] roleIds);

	/**
	 * 通过权限类型和父权限id获取权限信息
	 * @param funcType
	 * @param id
	 * @return
	 */
	List<Function> findByParentId(Integer funcType, String parentId);

	
}
